package com.cnhis.drgs.core.dao.mysql;

import com.cnhis.drgs.core.dao.DbHelper;
import com.cnhis.drgs.core.model.Column;
import com.cnhis.drgs.core.model.Schema;
import com.cnhis.drgs.core.model.TableView;

import java.util.List;

public abstract class MySqlDbHelper extends DbHelper {

    public List<Schema> getSchemaList() {
        return queryList("SELECT * FROM `information_schema`.`SCHEMATA`", Schema.class);
    }

    public List<TableView> getTableViewList(String schema) {
        return queryList("SELECT * FROM `information_schema`.`TABLES` WHERE TABLE_SCHEMA = ?", TableView.class, schema);
    }

    //发现使用 TABLE_NAME = ? 表名变小写了，使用TABLE_NAME LIKE ?就没问题。
    public TableView getTableView(String schema, String tableView) {
        return queryFirst("SELECT * FROM `information_schema`.`TABLES` WHERE TABLE_SCHEMA = ? AND TABLE_NAME LIKE ?", TableView.class, schema, tableView);
    }

    public List<Column> getColumnList(String schema, String tableView) {
        return queryList("SELECT * FROM `information_schema`.`COLUMNS` WHERE TABLE_SCHEMA = ? AND TABLE_NAME LIKE ?", Column.class, schema, tableView);
    }
}
